#!/bin/bash
# 保存为项目根目录 gen-commit.sh，并 chmod +x

set -e

DIFF=$(git diff --staged)
if [ -z "$DIFF" ]; then
  echo "❌ 没有暂存的更改。请先运行 git add ."
  exit 1
fi

MODEL="qwen2:1.5b"  # 可替换

PROMPT="你是一个专业的 Git 提交信息生成器。请根据以下代码变更（diff）生成一条符合 Conventional Commits 规范的提交信息。

要求：
1. 使用中文描述
2. 自动判断变更类型：feat（新功能）、fix（修复 bug）、docs（文档）、style（格式）、refactor（重构）、perf（性能）、test（测试）、chore（构建/依赖等）
3. 格式为：<type>(<scope>): <简明描述>（scope 可选）
4. 描述不超过 72 个字符
5. **只输出 commit message 本身，不要任何解释或 Markdown**

你必须严格遵守以下规则：
- 只输出一行文本，即符合 Conventional Commits 的提交信息
- 不要包含“Thinking...”、“好的”、“根据要求”等任何前缀或后缀

代码变更如下：

$DIFF"

MESSAGE=$(ollama run "$MODEL" "$PROMPT" 2>/dev/null | tr -d '\r\n' | xargs)

if [ -z "$MESSAGE" ]; then
  echo "⚠️  模型未返回有效提交信息，请检查 Ollama 是否正常运行。"
  exit 1
fi

echo "✨ 生成的提交信息："
echo
echo "$MESSAGE"
echo
echo "👉 提交命令："
echo "git commit -m \"$MESSAGE\""